home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / mail / mailx6 / _setup.1 / MAIN.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-03-18  |  4.2 KB  |  171 lines

  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses WinTypes, WinProcs, SysUtils, Classes, Graphics, Forms, Controls, Menus,
  6.   StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, openMsg, MXMAILX;
  7.  
  8. {$I mailxdef.int}
  9.  
  10. type
  11.   TMainForm = class(TForm)
  12.     MainMenu1: TMainMenu;
  13.     Panel1: TPanel;
  14.     StatusLine: TPanel;
  15.     File1: TMenuItem;
  16.     Panel2: TPanel;
  17.     Window1: TMenuItem;
  18.     N1: TMenuItem;
  19.     FileExitItem: TMenuItem;
  20.     WindowCascadeItem: TMenuItem;
  21.     WindowTileItem: TMenuItem;
  22.     WindowArrangeItem: TMenuItem;
  23.     InboxCmd: TMenuItem;
  24.     NewMessageCmd: TMenuItem;
  25.     WindowMinimizeItem: TMenuItem;
  26.     SpeedPanel: TPanel;
  27.     OpenBtn: TSpeedButton;
  28.     CopyBtn: TSpeedButton;
  29.     ExitBtn: TSpeedButton;
  30.     MXForm1: TMXForm;
  31.     MXSession1: TMXSession;
  32.     procedure FormCreate(Sender: TObject);
  33.     procedure WindowCascadeItemClick(Sender: TObject);
  34.     procedure UpdateMenuItems(Sender: TObject);
  35.     procedure WindowTileItemClick(Sender: TObject);
  36.     procedure WindowArrangeItemClick(Sender: TObject);
  37.     procedure FileCloseItemClick(Sender: TObject);
  38.     procedure FileExitItemClick(Sender: TObject);
  39.     procedure InboxCmdClick(Sender: TObject);
  40.     procedure NewMessageCmdClick(Sender: TObject);
  41.     procedure WindowMinimizeItemClick(Sender: TObject);
  42.     procedure FormDestroy(Sender: TObject);
  43.     procedure OpenBtnClick(Sender: TObject);
  44.     procedure CopyBtnClick(Sender: TObject);
  45.   private
  46.     { Private declarations }
  47.     procedure CreateMDIChild(const Name: string);
  48.     procedure ShowHint(Sender: TObject);
  49.   public
  50.     { Public declarations }
  51.   end;
  52.  
  53. var
  54.   MainForm: TMainForm;
  55.  
  56. implementation
  57.  
  58. {$R *.DFM}
  59.  
  60. uses ChildWin, Mailsys3;
  61.  
  62. procedure TMainForm.FormCreate(Sender: TObject);
  63. var
  64.    MailSystem: TMailSystem;
  65. begin
  66.   MailSystem:=TMailSystem.Create(Self);
  67.   MailSystem.ShowModal;
  68.   MailSystem.free;
  69.   MXSession1.Logon:=TRUE;
  70.   if MXSession1.Logon<>TRUE then PostQuitMessage(0);
  71.  
  72.   Application.OnHint := ShowHint;
  73.   Screen.OnActiveFormChange := UpdateMenuItems;
  74. end;
  75.  
  76. procedure TMainForm.ShowHint(Sender: TObject);
  77. begin
  78.   StatusLine.Caption := Application.Hint;
  79. end;
  80.  
  81. procedure TMainForm.CreateMDIChild(const Name: string);
  82. var
  83.   Child: TMDIChild;
  84. begin
  85.   { create a new MDI child window }
  86.   Child := TMDIChild.Create(Application);
  87.   Child.Caption := Name;
  88. end;
  89.  
  90. procedure TMainForm.FileCloseItemClick(Sender: TObject);
  91. begin
  92.   if ActiveMDIChild <> nil then
  93.     ActiveMDIChild.Close;
  94. end;
  95.  
  96. procedure TMainForm.InboxCmdClick(Sender: TObject);
  97. begin
  98.   { save current file (ActiveMDIChild points to the window) }
  99.   CreateMDIChild('Message Inbox');
  100. end;
  101.  
  102. procedure TMainForm.NewMessageCmdClick(Sender: TObject);
  103. begin
  104.   { save current file under new name }
  105.   CopyBtnClick(Self);
  106. end;
  107.  
  108. procedure TMainForm.FileExitItemClick(Sender: TObject);
  109. begin
  110.   Close;
  111. end;
  112.  
  113. procedure TMainForm.WindowCascadeItemClick(Sender: TObject);
  114. begin
  115.   Cascade;
  116. end;
  117.  
  118. procedure TMainForm.WindowTileItemClick(Sender: TObject);
  119. begin
  120.   Tile;
  121. end;
  122.  
  123. procedure TMainForm.WindowArrangeItemClick(Sender: TObject);
  124. begin
  125.   ArrangeIcons;
  126. end;
  127.  
  128. procedure TMainForm.WindowMinimizeItemClick(Sender: TObject);
  129. var
  130.   I: Integer;
  131. begin
  132.   { Must be done backwards through the MDIChildren array }
  133.   for I := MDIChildCount - 1 downto 0 do
  134.     MDIChildren[I].WindowState := wsMinimized;
  135. end;
  136.  
  137. procedure TMainForm.UpdateMenuItems(Sender: TObject);
  138. begin
  139.   WindowCascadeItem.Enabled := MDIChildCount > 0;
  140.   WindowTileItem.Enabled := MDIChildCount > 0;
  141.   WindowArrangeItem.Enabled := MDIChildCount > 0;
  142.   WindowMinimizeItem.Enabled := MDIChildCount > 0;
  143. end;
  144.  
  145. procedure TMainForm.FormDestroy(Sender: TObject);
  146. begin
  147.   Screen.OnActiveFormChange := nil;
  148. end;
  149.  
  150. procedure TMainForm.OpenBtnClick(Sender: TObject);
  151. begin
  152.      CreateMDIChild('Message Inbox');
  153. end;
  154.  
  155. procedure TMainForm.CopyBtnClick(Sender: TObject);
  156. var
  157.   Child: TMsgForm;
  158. begin
  159.   Child:=TMsgForm.Create(Application);
  160.   Child.MXMessage1.Action:=ACTION_NEW;
  161.   Child.MXMessage1.WorkingMsg:=wtCOMPOSE;
  162.   Child.btnReply.Enabled:=FALSE;
  163.   Child.btnForward.Enabled:=FALSE;
  164.   Child.szTime.Enabled:=FALSE;
  165.   Child.szMessageID.Enabled:=FALSE;
  166.   Child.szOriginator.Enabled:=FALSE;
  167.   Child.szAttachList.Enabled:=FALSE;
  168. end;
  169.  
  170. end.
  171.